#font {
	#family {
		.serif() {
			font-family: @serifFontFamily;
		}
		.sans-serif() {
			font-family: @sansFontFamily;
		}
		.monospace() {
			font-family: @monoFontFamily;
		}
	}
	.shorthand(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
		font-size: @size;
		font-weight: @weight;
		line-height: @lineHeight;
	}
	.serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
		#font > #family > .serif;
		#font > .shorthand(@size, @weight, @lineHeight);
	}
	.sans-serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
		#font > #family > .sans-serif;
		#font > .shorthand(@size, @weight, @lineHeight);
	}
	.monospace(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
		#font > #family > .monospace;
		#font > .shorthand(@size, @weight, @lineHeight);
	}
}


// Text overflow
// -------------------------
// Requires inline-block or block for proper styling
.text-overflow() {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

// Optional hyphenation
.hyphens(@mode: auto) {
  word-wrap: break-word;
  -webkit-hyphens: @mode;
     -moz-hyphens: @mode;
      -ms-hyphens: @mode;
       -o-hyphens: @mode;
          hyphens: @mode;
}